/**********************************************************************
 * SailmiPIM - modular cross-platform feature Personal Information Manager Tools.
 * Copyright(C) 2006-2014  Georg Rudoy
 *
 * Distributed under the Boost Software License, Version 1.0.
 *(See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
 **********************************************************************/

#include <QVariant>
#include "an/constants.h"
#include "ef/entityfields.h"
#include "ef/entityconstants.h"
namespace SailmiPIM
{
	const QString IgnoreSelf { QStringLiteral("IgnoreSelf") };
	const QString AllowedSemantics { QStringLiteral("AllowedSemantics") };
}

namespace SailmiPIM::EF
{
	const QString Priority { QStringLiteral("Priority") };
	const QString NotificationActions { QStringLiteral("NotificationActions") };
	const QString NotificationPixmap { QStringLiteral("NotificationPixmap") };
	const QString NotificationTimeout { QStringLiteral("NotificationTimeout") };
	const QString HandlingObject { QStringLiteral("HandlingObject") };
	const QString UserVisibleName { QStringLiteral("UserVisibleName") };
	const QString Text { QStringLiteral("Text") };
	const QString Tags { QStringLiteral(" Tags") };

	namespace GlobalAction
	{
		const QString ActionID { QStringLiteral("ActionID") };
		const QString Shortcut { QStringLiteral("Shortcut") };
		const QString Receiver { QStringLiteral("Receiver") };
		const QString Method { QStringLiteral("Method") };
		const QString AltShortcuts { QStringLiteral("AltShortcuts") };
	}

	namespace PowerState
	{
		const QString TimeLeft { QStringLiteral("TimeLeft") };
	}
}

namespace SailmiPIM::Mimes
{
#define MIME_NOTIFICATION "x-sailmipim/notification"
	const QString Notification { QStringLiteral(MIME_NOTIFICATION) };
	const QString NotificationRuleCreate { QStringLiteral(MIME_NOTIFICATION "-rule-create") };

	const QString GlobalActionRegister { QStringLiteral("x-sailmipim/global-action-register") };
	const QString GlobalActionUnregister { QStringLiteral("x-sailmipim/global-action-unregister") };

	const QString PowerStateChanged { QStringLiteral("x-sailmipim/power-state-changed") };

	const QString DataFilterRequest { QStringLiteral("x-sailmipim/data-filter-request") };
}

namespace SailmiPIM::PowerState
{
	const QVariant Sleeping { QByteArray { "Sleeping" } };
	const QVariant WokeUp { QByteArray { "WokeUp" } };
}

namespace SailmiPIM::AN
{
    const QString CatEventCancel { QStringLiteral("com.sailmi.pim.AdvNotifications.Cancel") };

#define CAT_IM "com.sailmi.pim.AdvNotifications.IM"
    const QString CatIM { QStringLiteral(CAT_IM) };
	const QString TypeIMAttention { QStringLiteral(CAT_IM ".AttentionDrawn") };
	const QString TypeIMIncFile { QStringLiteral(CAT_IM ".IncomingFile") };
	const QString TypeIMIncMsg { QStringLiteral(CAT_IM ".IncomingMessage") };
	const QString TypeIMMUCHighlight { QStringLiteral(CAT_IM ".MUCHighlightMessage") };
	const QString TypeIMMUCInvite { QStringLiteral(CAT_IM ".MUCInvitation") };
	const QString TypeIMMUCMsg { QStringLiteral(CAT_IM ".MUCMessage") };
	const QString TypeIMStatusChange { QStringLiteral(CAT_IM ".StatusChange") };
	const QString TypeIMSubscrGrant { QStringLiteral(CAT_IM ".Subscr.Granted") };
	const QString TypeIMSubscrRevoke { QStringLiteral(CAT_IM ".Subscr.Revoked") };
	const QString TypeIMSubscrRequest { QStringLiteral(CAT_IM ".Subscr.Requested") };
	const QString TypeIMSubscrSub { QStringLiteral(CAT_IM ".Subscr.Subscribed") };
	const QString TypeIMSubscrUnsub { QStringLiteral(CAT_IM ".Subscr.Unsubscribed") };
	const QString TypeIMEventTuneChange { QStringLiteral(CAT_IM ".Event.Tune") };
	const QString TypeIMEventMoodChange { QStringLiteral(CAT_IM ".Event.Mood") };
	const QString TypeIMEventActivityChange { QStringLiteral(CAT_IM ".Event.Activity") };
	const QString TypeIMEventLocationChange { QStringLiteral(CAT_IM ".Event.Location") };

#define CAT_ORGANIZER "com.sailmi.pim.AdvNotifications.Organizer"
	const QString CatOrganizer { QStringLiteral(CAT_ORGANIZER) };
	const QString TypeOrganizerEventDue { QStringLiteral(CAT_ORGANIZER ".EventDue") };

#define CAT_DOWNLOADS "com.sailmi.pim.AdvNotifications.Downloads"
	const QString CatDownloads { QStringLiteral(CAT_DOWNLOADS) };
	const QString TypeDownloadFinished { QStringLiteral(CAT_DOWNLOADS ".DownloadFinished") };
	const QString TypeDownloadError { QStringLiteral(CAT_DOWNLOADS ".DownloadError") };

#define CAT_PACKAGE_MANAGER "com.sailmi.pim.AdvNotifications.PackageManager"
	const QString CatPackageManager { QStringLiteral(CAT_PACKAGE_MANAGER) };
	const QString TypePackageUpdated { QStringLiteral(CAT_PACKAGE_MANAGER ".PackageUpdated") };

#define CAT_MEDIA_PLAYER "com.sailmi.pim.AdvNotifications.MediaPlayer"
	const QString CatMediaPlayer { QStringLiteral(CAT_MEDIA_PLAYER) };
	const QString TypeMediaPlaybackStatus { QStringLiteral(CAT_MEDIA_PLAYER ".PlaybackStatus") };

#define CAT_TERMINAL "com.sailmi.pim.AdvNotifications.Terminal"
	const QString CatTerminal { QStringLiteral(CAT_TERMINAL) };
	const QString TypeTerminalBell { QStringLiteral(CAT_TERMINAL ".Bell") };
	const QString TypeTerminalActivity { QStringLiteral(CAT_TERMINAL ".Activity") };
	const QString TypeTerminalInactivity { QStringLiteral(CAT_TERMINAL ".Inactivity") };

#define CAT_NEWS "com.sailmi.pim.AdvNotifications.News"
	const QString CatNews { QStringLiteral(CAT_NEWS) };
	const QString TypeNewsSourceUpdated { QStringLiteral(CAT_NEWS ".Updated") };
	const QString TypeNewsSourceBroken { QStringLiteral(CAT_NEWS ".Broken") };

#define CAT_GENERIC "com.sailmi.pim.AdvNotifications.Generic"
	const QString CatGeneric { QStringLiteral(CAT_GENERIC) };
	const QString TypeGeneric { QStringLiteral(CAT_GENERIC ".Generic") };

	namespace Field
	{
		const QString MediaPlayerURL { QStringLiteral(CAT_MEDIA_PLAYER ".Fields.URL") };
		const QString MediaPlaybackStatus { QStringLiteral(CAT_MEDIA_PLAYER ".Fields.PlaybackStatus") };
		const QString MediaTitle { QStringLiteral(CAT_MEDIA_PLAYER ".Fields.Title") };
		const QString MediaArtist { QStringLiteral(CAT_MEDIA_PLAYER ".Fields.Artist") };
		const QString MediaAlbum { QStringLiteral(CAT_MEDIA_PLAYER ".Fields.Album") };
		const QString MediaLength { QStringLiteral(CAT_MEDIA_PLAYER ".Fields.Length") };
		const QString TerminalActive { QStringLiteral(CAT_TERMINAL ".Fields.Active") };
		const QString IMActivityGeneral { QStringLiteral(CAT_IM ".Fields.Activity.General") };
		const QString IMActivitySpecific { QStringLiteral(CAT_IM ".Fields.Activity.Specific") };
		const QString IMActivityText { QStringLiteral(CAT_IM ".Fields.Activity.Text") };
		const QString IMMoodGeneral { QStringLiteral(CAT_IM ".Fields.Mood.General") };
		const QString IMMoodText { QStringLiteral(CAT_IM ".Fields.Mood.Text") };
		const QString IMLocationLongitude { QStringLiteral(CAT_IM ".Fields.Location.Longitude") };
		const QString IMLocationLatitude { QStringLiteral(CAT_IM ".Fields.Location.Latitude") };
		const QString IMLocationCountry { QStringLiteral(CAT_IM ".Fields.Location.Country") };
		const QString IMLocationLocality { QStringLiteral(CAT_IM ".Fields.Location.Locality") };
		const QString NewsSourceName { QStringLiteral(CAT_NEWS ".Fields.Source.Name") };
		const QString NewsSourceURL { QStringLiteral(CAT_NEWS ".Fields.Source.URL") };
	}

	namespace EF
	{
        const QString SenderID { QStringLiteral("com.sailmi.pim.AdvNotifications.SenderID") };
        const QString EventCategory { QStringLiteral("com.sailmi.pim.AdvNotifications.EventCategory") };
        const QString EventID { QStringLiteral("com.sailmi.pim.AdvNotifications.EventID") };
        const QString VisualPath { QStringLiteral("com.sailmi.pim.AdvNotifications.VisualPath") };
        const QString EventType { QStringLiteral("com.sailmi.pim.AdvNotifications.EventType") };
        const QString FullText { QStringLiteral("com.sailmi.pim.AdvNotifications.FullText") };
        const QString ExtendedText { QStringLiteral("com.sailmi.pim.AdvNotifications.ExtendedText") };
        const QString DeltaCount { QStringLiteral("com.sailmi.pim.AdvNotifications.DeltaCount") };
        const QString Count { QStringLiteral("com.sailmi.pim.AdvNotifications.Count") };

        const QString WindowIndex { QStringLiteral("com.sailmi.pim.AdvNotifications.WindowIndex") };

        const QString OpenConfiguration { QStringLiteral("com.sailmi.pim.AdvNotifications.OpenConfiguration") };
        const QString IsSingleShot { QStringLiteral("com.sailmi.pim.AdvNotifications.SingleShot") };
        const QString NotifyTransient { QStringLiteral("com.sailmi.pim.AdvNotifications.NotifyTransient") };
        const QString NotifyPersistent { QStringLiteral("com.sailmi.pim.AdvNotifications.NotifyPersistent") };
        const QString NotifyAudio { QStringLiteral("com.sailmi.pim.AdvNotifications.NotifyAudio") };

        const QString RuleID { QStringLiteral("com.sailmi.pim.AdvNotifications.RuleID") };
        const QString AssocColor { QStringLiteral("com.sailmi.pim.AdvNotifications.AssocColor") };
        const QString IsEnabled { QStringLiteral("com.sailmi.pim.AdvNotifications.IsEnabled") };
	}
}
